home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
DB_CLIPP
/
2510.ZIP
/
TRSOURCE.EXE
/
_TR_PEEK.ASM
< prev
next >
Wrap
Assembly Source File
|
1990-10-22
|
2KB
|
58 lines
; _TR_PEEK.ASM
;
; by Ralph Davis
; modified by Leonard Zerman
;
; Placed in the public domain by Tom Rettig Associates, 10/22/1990.
;
PUBLIC _TR_PEEK_PARMS
EXTRN __TR_HTOI:FAR
INCLUDE EXTENDA.MAC
;*****************************************************
_TR_PEEK_TEXT SEGMENT BYTE PUBLIC 'CODE'
ASSUME CS:_TR_PEEK_TEXT
;-----------------------------------------------------
_TR_PEEK_PARMS PROC FAR
;
; processes parameters passed to PEEK() functions
;
; RETURNS: Segment in SI, offset in AX
;-------------------
PUSH BX
GET_PCOUNT ; call _parinfo(0) to
; make sure parameter was passed
CMP AX,2 ; do we have two parameters?
JL PGP_RET ; no, go to error routine
GET_CHAR 1 ; PCOUNT OK, so get parameters
PUSH DX ; now pass address to _TR_HTOI
PUSH AX
CALL __TR_HTOI ; returns integer in AX
ADD SP,4
PUSH AX ; first parameter is segment address
; save it
GET_PTYPE 2 ; call _parinfo() to see if offset
; is hex string or number
AND AX,CHARACTER ; is it hex string?
JNZ PGP_2 ; yes, use _parc()
GET_INT 2 ; no, get offset as int
JMP SHORT PGP_3
PGP_2:
GET_CHAR 2 ; Get parm 2 as char *
PUSH DX ; Pass it to _tr_htoi()
PUSH AX
CALL __TR_HTOI ; returns offset as integer in AX
ADD SP,4
PGP_3:
POP SI ; retrieve requested segment address
POP BX
PGP_RET: RET
_TR_PEEK_PARMS ENDP
;------------------------------------------------
_TR_PEEK_TEXT ENDS
;************************************************
END